Skip to content

D-IDENTITY-2: frugal north-star mint (dedup-by-URI + entity_type↔NiblePath bijection)#484

Merged
AdaWorldAPI merged 5 commits into
mainfrom
claude/nice-edison-g4rhhl
Jun 11, 2026
Merged

D-IDENTITY-2: frugal north-star mint (dedup-by-URI + entity_type↔NiblePath bijection)#484
AdaWorldAPI merged 5 commits into
mainfrom
claude/nice-edison-g4rhhl

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What this is

Session work on claude/nice-edison-g4rhhl, rebased onto current main (#483). One substantive code change; the rest is board housekeeping + exploratory research docs. Flagged honestly so reviewers don't mistake the plans for committed architecture.

Substantive (code) — f4cec3b9 D-IDENTITY-2

lance-graph-ontology registry: dedup-by-URI mint (a canonical class URI already in the dictionary REUSES its global entity_type; fresh mints stay monotone append-order, u16-overflow-guarded) + the entity_type ↔ NiblePath bijection pair table (register_class_path both-way conflict-rejecting, niblepath_of / entity_type_of / rows_with_entity_type) + round-trip tests. +5 tests; 14 registry tests green.

This is the registry/policy half of Phase B that the just-merged GUID-canon doc (#482, .claude/knowledge/guid-canon-and-prefix-routing.md) flags as "CONJECTURE until Phase B lands." It conforms to the canon (lance-graph owns policy; ndarray owns mechanism). The NodeGuid layout change itself (canon's "groups 3–4 yield 8 nibbles to HIP/TWIG" — i.e. reclaim shape_hash + RFC-9562 wrapper bits to tree-address tiers) is deliberately NOT in this PR; it's the version-gated Phase-B follow-up, pending a group-by-group audit against the real OGAR/CLAUDE.md canon.

Board housekeeping

  • 45f809d6 — epiphany-council gate verdict on three identity entries (3× REVISE; caught one supervision-leg over-claim that had zero call-sites).
  • cb026a18 — removal of those three identity epiphany entries at the repo owner's explicit instruction — a deliberate, one-off exception to the append-only ledger rule, recorded as such in the commit (audit trail is the commit, not a ledger entry). De-dangled all cross-references; EPIPHANIES.md integrity verified (upstream E-WHP-BIPOLAR-1 preserved).

Exploratory (research docs — NOT final spec)

  • 25e50b58 + f3a0e992polyglot-container-query-membrane-v1 plan + addendum. These are research provenance. The "membrane / strategy-registry" framing was superseded in discussion by the self-describing-key convergence (the class-in-key makes the cold path already a graph; no membrane needed) and by the GUID-canon doc that landed on main. Kept for the grounded inventory (verified file:line surface of lance-graph + the surrealdb fork's AST/RecordId/kv-lance), not as a committed direction.

Notes

  • Commits are unsigned (no signing key configured in this container); author/committer identity is correct (Claude <noreply@anthropic.com>).
  • No behavioural change beyond the registry mint; the plan/board commits are docs-only.

https://claude.ai/code/session_014A4JuRCqKP2yNENrQ9Ha7H


Generated by Claude Code

claude added 5 commits June 11, 2026 02:26
…>NiblePath bijection (D-IDENTITY-2)

Phase B first brick (moves 1+2+3 of the identity plan). entity_type is now
the GLOBAL shared template id (DECISION-3): a canonical class URI already in
the dictionary reuses its entity_type (new row, new bridge/namespace, same
template id); fresh mints stay monotone append-order with gaps, u16 overflow
guarded. The bijection pair table (path_by_type/type_by_path) + register_class_path
(both-way conflict-rejecting, EMPTY-sentinel guard, idempotent on same pair) +
niblepath_of/entity_type_of make Eineindeutigkeit CI-falsifiable. rows_with_entity_type
exposes the multi-row reading dedup introduces. Three stale-doc fixes
(namespace.rs 'dense within the namespace' -> GLOBAL; bridge.rs 'dense index'
-> compare-only).

+5 tests (dedup shares id, monotone-with-gaps, checksum-reappend keeps id,
bijection round-trips both ways, bijection conflicts rejected); 14 registry
tests green. My 3 files clippy/fmt-clean; pre-existing crate-wide -D warnings
and fmt drift in untouched files left as-is (surgical diff).

Board: STATUS_BOARD identity section (D-IDENTITY-1..4), TD-PAIRTABLE-1,
AGENT_LOG, plan LANDED note. Deferred: D-IDENTITY-3 (gate the positional
contract/ontology.rs:85 helper, I-LEGACY-API-FEATURE-GATED), D-IDENTITY-4
(pair-table Lance persistence).

https://claude.ai/code/session_014A4JuRCqKP2yNENrQ9Ha7H
…E, supervision-leg over-claim caught

Retroactive epiphany-brainstorm-council gate (the gate skipped when the three
identity epiphanies were hand-prepended this session). 5-savant panel, every
claim re-verified against source. Verdict: 3x REVISE, no REJECT.

- E-ANCESTRY-TRINITY-1: the 'supervision-edge = is_ancestor_of, same relation'
  leg is NOT wired -- is_ancestor_of has zero call-sites in lance-graph-supervisor
  and orchestration.rs (grep-verified). Demoted identity -> CONJECTURE so a future
  session does not delete supervisor routing believing the bit-shift subsumes it.
  Legs 1-3 (one-shift subClassOf, template specialization) stay code-true.
- E-MINT-TRACE-1: present-tense bug -- 'registry NOT deduped' was true at
  write-time but D-IDENTITY-2 (5aaa54c) shipped the dedup the same session; the
  :476 mint cite went stale (now 565-579). Two-mints-coexist caveat added
  (canonical registry mint vs legacy positional contract/ontology.rs:85, gated
  by deferred D-IDENTITY-3).
- E-OGAR-NORTHSTAR-1: DECISION stands; provenance pointer added.

Applied append-only: prepended E-COUNCIL-IDENTITY-1 + updated the 3 Status lines
(past entry bodies untouched). AGENT_LOG entry for the council run.

https://claude.ai/code/session_014A4JuRCqKP2yNENrQ9Ha7H
…iberate append-only exception)

User asked to drop the two embarrassing identity epiphanies; chose the full
sweep, so this also removes the council-verdict entry that narrated them.

Removed from EPIPHANIES.md: E-MINT-TRACE-1 (tense bug — its 'not deduped'
claim was inverted by D-IDENTITY-2 the same session), E-ANCESTRY-TRINITY-1
(unwired supervision-leg over-claim), E-COUNCIL-IDENTITY-1 (the retroactive
gate verdict on the two). E-OGAR-NORTHSTAR-1 (a ratified DECISION) and
E-IDENTITY-WHITEBOX-1 are kept; E-OGAR's back-references to the removed
entries were stripped so it stands alone.

De-dangled all cross-references: STATUS_BOARD epiphany list, two AGENT_LOG
work-record entries (kept the substance, dropped the removed-ID pointers),
and removed the council-run AGENT_LOG entry. Zero residual references remain.

This is a deliberate one-off exception to the append-only board rule, made
on the repo owner's explicit instruction; the audit trail is this commit.
The underlying code (D-IDENTITY-2: dedup + bijection, 5aaa54c) is unchanged
and remains correct — only the ledger prose was removed.

https://claude.ai/code/session_014A4JuRCqKP2yNENrQ9Ha7H
…taFusion UDF + Cypher over one HHTL address space

Research deliverable: mailboxes parse as a normal cold path because (a) the
fork's KV keys are storekey-encoded order-preserving and record-id ranges
lower to native byte-range scans, so an HHTL subtree under the left-aligned
addr64 codec is ONE contiguous range (is_ancestor_of = range containment);
(b) the mailbox needs only the 5-method Transactable read subset over a
phase-pinned SoaEnvelope snapshot to be indistinguishable from Lance cold.
The ontology registry (entity_type<->NiblePath bijection, D-IDENTITY-2) is
the resident Christmas-tree skeleton; rows materialize at their address from
whichever tier owns them; DEFINE TABLE/FIELD round-trips through the C16b
DDL builders as the catalog exchange format.

Grounded by two parallel repo sweeps + main-thread spot-verification; one
agent claim corrected (SoaEnvelope has zero real impls -- identity N3 stands,
now D-PG-2). kv-lance found FULLY implemented in-tree (surreal_container's
BLOCKED C/D stale). LanceDB-leading ruling respected throughout: SurrealQL
is a dialect/view, never the store.

Board: INTEGRATION_PLANS prepend, STATUS_BOARD D-PG-1..6 (Queued), AGENT_LOG.

https://claude.ai/code/session_014A4JuRCqKP2yNENrQ9Ha7H
…c foveated tree-builder

User direction confirmed against identity.rs octet layout: the GUID's left
half (classid + HHTL address) is order-preserving plain bytes, so Cypher
label/subtree patterns compile to byte-prefix range predicates servable by
Lance zone-maps/scalar indexes; quantized similarity (RaBitQ-style/CAM-PQ/
Binary16K) rides the same row. Two caveats: namespace sorts first (cross-
namespace template scans = per-ns ranges or registry hop); GUID carries only
4 path nibbles (deeper scans via registry/addr64).

New M6 + D-PG-7: NiblePath assignments computable by a deterministic
hierarchical partitioner (CLAM pole-split preferred over order-dependent
classic Louvain), 16-way capacity-bounded so foveation falls out (depth grows
where dense), and APPEND-STABLE as an iron requirement -- bootstrap once,
greedy insertion after, minted paths never move (tree = address space;
re-clustering would re-address every GUID). Determinism + append-stability
property tests mandatory.

https://claude.ai/code/session_014A4JuRCqKP2yNENrQ9Ha7H
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@AdaWorldAPI, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 7 minutes and 43 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ec3a9762-f52a-4835-ba57-790813b893a8

📥 Commits

Reviewing files that changed from the base of the PR and between 7053c32 and f3a0e99.

📒 Files selected for processing (10)
  • .claude/board/AGENT_LOG.md
  • .claude/board/EPIPHANIES.md
  • .claude/board/INTEGRATION_PLANS.md
  • .claude/board/STATUS_BOARD.md
  • .claude/board/TECH_DEBT.md
  • .claude/plans/identity-architecture-exists-vs-needs-v1.md
  • .claude/plans/polyglot-container-query-membrane-v1.md
  • crates/lance-graph-ontology/src/bridge.rs
  • crates/lance-graph-ontology/src/namespace.rs
  • crates/lance-graph-ontology/src/registry.rs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f3a0e99287

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

.get(proposal.ogit_uri.as_str())
.map(|idx| self.rows[*idx as usize].schema_ptr.entity_type_id())
{
Some(existing) => existing,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep URI lookups namespace-aware when deduping rows

When a second bridge/namespace maps the same ogit_uri, this branch now inserts another row with the reused entity_type, but the existing by_uri index is still single-valued and is overwritten by the later append. In the new intended case from the tests (same canonical URI in multiple namespaces), OgitBridge::for_namespace("Person").entity_by_uri(...) can resolve the later Health/Odoo row and then fail the namespace check in NamespaceBridge::entity_by_uri (bridge.rs:88-101); row_for_uri and provenance attachment similarly target only the last row. Either keep the URI index pointed at a canonical row or make raw-URI lookup namespace-aware when allowing duplicate URI rows.

Useful? React with 👍 / 👎.

@AdaWorldAPI AdaWorldAPI merged commit 5363f43 into main Jun 11, 2026
6 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Jun 11, 2026
Surveyed PRs #471-#487. Three landed that materially affect my outstanding
ask list:

- #482 (merged): GUID canon + prefix routing knowledge doc — pins
  TWO-ALGEBRA RULE (sign=XOR, magnitude=bundle, never MergeMode::Xor)
  + helix CurveRuler stride-4-over-17 as bit-exact integer phase
  generator. Both are load-bearing receipts for substrate-addressing-v1.

- #484 (merged): D-IDENTITY-2 ships entity_type↔NiblePath bijection in
  lance-graph-ontology registry. RESOLVES the Tier-1 'NiblePath scheme
  for FMA classes' ask — OGAR Phase 8 calls register_class_path() per
  FMA Class.

- #485 (OPEN): PROBE-MANTISSA-FILL + PROBE-PHASE-1 both GREEN. The
  golden-mantissa placement leg of the substrate-addressing claim is
  now measured (not asserted): beats seeded random by ~30% at k=256
  + half worst-case pile-up. CurveRuler bit-exactness verified over
  20 path/depth pairs.

Updated Decision 1 trigger: substrate-addressing-v1.md now files
after #485 merges (not after D-HELIX-1 owner ping — they're actively
probing). D-CESIUM-1 (mine — extend implicit_tiling.rs to consume
helix::bounds) is the file-soonest deliverable. D-JC-1 still needs
per-scene-class p calibration timeline.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants